//package com.daocao.hua.activity;
//
//import android.app.AlertDialog;
//import android.app.ProgressDialog;
//import android.content.ComponentName;
//import android.content.Context;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.graphics.Color;
//import android.net.Uri;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//import android.text.Editable;
//import android.text.TextUtils;
//import android.text.TextWatcher;
//import android.util.Log;
//import android.util.TypedValue;
//import android.view.View;
//import android.webkit.WebChromeClient;
//import android.webkit.WebView;
//import android.widget.CheckBox;
//import android.widget.CompoundButton;
//import android.widget.TextView;
//import android.widget.Toast;
//
//import com.daocao.hua.R;
//import com.daocao.hua.api.callback.PaySelectContract;
//import com.daocao.hua.api.requestInfo.PaySelectRequest;
//import com.daocao.hua.constant.Const;
//import com.daocao.hua.event.AlipayUserEvent;
//import com.daocao.hua.event.ClosePayActEvent;
//import com.daocao.hua.event.OnHomeEventMsg;
//import com.daocao.hua.event.YouhuiSelectEvent;
//import com.daocao.hua.model.BeeCloudModel;
//import com.daocao.hua.model.ConfirmDilaogModel;
//import com.daocao.hua.model.GoPayModel;
//import com.daocao.hua.model.PayOrderModel;
//import com.daocao.hua.model.PayWayModel;
//import com.daocao.hua.model.RepayModel;
//import com.daocao.hua.model.RepayStatusDialogModel;
//import com.daocao.hua.util.PreferenceUtils;
//import com.daocao.hua.util.ScacheUtil;
//import com.daocao.hua.util.ToastUtil;
//import com.daocao.hua.util.UI;
//import com.daocao.hua.util.Util;
//import com.daocao.hua.view.CircularProgress;
//import com.daocao.hua.view.Dialog;
//import com.daocao.hua.view.LastInputEditText;
//import com.daocao.hua.view.PaySubmitDialog;
//
//import org.greenrobot.eventbus.EventBus;
//import org.greenrobot.eventbus.Subscribe;
//import org.greenrobot.eventbus.ThreadMode;
//
//import java.lang.ref.WeakReference;
//import java.text.DecimalFormat;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.Map;
//
//import butterknife.BindView;
//import butterknife.ButterKnife;
//import butterknife.OnCheckedChanged;
//import butterknife.OnClick;
//import butterknife.Unbinder;
//
//
///**
// * Created by xsooy-pc on 2017/6/22.
// */
//
//public class PaySelectNewV2Activity extends BaseActivity implements PaySelectContract.View, TextWatcher {
//    @BindView(R.id.txt_pay_money)
//    TextView txtPayMoney;
//    @BindView(R.id.txt_total)
//    TextView txtTotal;
//    @BindView(R.id.txt_dikou)
//    LastInputEditText txtDikou;
//    @BindView(R.id.txt_youhuijuan)
//    TextView txtYouhuijuan;
//    @BindView(R.id.cb_dikou)
//    CheckBox cbDikou;
//    @BindView(R.id.txt_pay_type)
//    TextView txtPayType;
//    @BindView(R.id.submit)
//    TextView payBtn;
//    @BindView(R.id.progressBar)
//    CircularProgress loading;
//    @BindView(R.id.title_right_text)
//    TextView titleRightText;
//    //    @BindView(R.id.layout_two_top)
////    View layoutTwoTop;
//    private PaySelectRequest api;
//    private String payMoneyString;
//    private static final String WX_APP = "WX_APP";
//    private static final String ALI_APP = "ALI_APP";
//    private static final String UN_APP = "UN_APP";
//    private static final String Otherpay = "Otherpay";
//    private static final String ACTION = "REPAY";
//    private String payment_id;
//    private String selectWays = ALI_APP;
//    private ProgressDialog loadingDialog;
//    private String toastMsg;
//    private float balance;
//    private int dikou_num;
//    private int totalMoney;
//    private String overdue;
//    private String mMoney;
//    private String dealId;
//    private Unbinder unbinder;
//    private ArrayList<PayWayModel.DataBean> payWayList;
//    private boolean isFirstClick = false;
//    private String payment_content;
//    private DecimalFormat format;
//    private String payment_title;
//    private float bonus_money = 0;
//    private int totalBonus;
//    private WebView mWebView;
//    private ArrayList<String> explainList;
//    private String notice_sn;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_pay_select_v2_new);
//        unbinder = ButterKnife.bind(this);
//        initBar();
//        baseInitView(this, "PaySelectNewV2Activity", Const.ViewType.ACTIVITY);
//        initView();
//        EventBus.getDefault().register(this);
//    }
//
//
//    private void initView() {
//        mWebView = new WebView(getApplicationContext());
//        mWebView.getSettings().setJavaScriptEnabled(true);
//        mWebView.setWebChromeClient(new WebChromeClient());
//        format = new DecimalFormat("0.00");
////        initPay();
//        api = PaySelectRequest.create();
//        api.attachView(this);
//        api.getPayWay();
//        Intent dataIntent = getIntent();
//        dealId = dataIntent.getStringExtra("deal_id");
//        mMoney = dataIntent.getStringExtra("money");
//        overdue = dataIntent.getStringExtra("overdue");
//        balance = dataIntent.getFloatExtra("balance", 0f);
//        dikou_num = (int) balance;
//        totalMoney = dataIntent.getIntExtra("total_money", 0);
//        txtPayMoney.setText(new DecimalFormat("0.00").format(Float.parseFloat(mMoney)));
////        UI.setTvHtml(txtPayMoney, R.string.pay_offline_money_text, new DecimalFormat("0.00").format(Float.parseFloat(mMoney)));
//        txtTotal.setText(totalMoney + "");
//        if (dikou_num < 5) {
//            payMoneyString = "0";
//            txtDikou.setText(payMoneyString);
//            cbDikou.setChecked(false);
//        } else {
//            payMoneyString = (dikou_num - dikou_num % 5) + "";
//            txtDikou.setText(payMoneyString);
//        }
////        payMoneyString = dikou_num + "";
////        txtDikou.setText(payMoneyString);
//
//        txtDikou.addTextChangedListener(this);
//
//        if (!TextUtils.isEmpty(PreferenceUtils.getString(this, "u_alipay", ""))) {
//            txtPayType.setText(PreferenceUtils.getString(this, "u_alipay", ""));
//        }
//    }
//
//
//    @Override
//    public void showError() {
//
//    }
//
//    @Override
//    public void complete() {
//        showLoading(false);
//    }
//
//    @Override
//    public void onRequestStart() {
//        showLoading(true);
//    }
//
//    @Override
//    public void getGoPaySuccess(GoPayModel model) {
//    }
//
//    @Override
//    public void getBeeCloudSuccess(BeeCloudModel data, String channel) {
//
//    }
//
//    @Override
//    public void getPayWaySuccess(PayWayModel item) {
//        if (item.allow_stages == 1) {
//            titleRightText.setVisibility(View.VISIBLE);
//        } else {
//            titleRightText.setVisibility(View.GONE);
//        }
//
//        payWayList = item.data;
//        totalBonus = item.bonus_number;
//        if (item.bonus_number == 0) {
//            txtYouhuijuan.setText("无");
//        } else {
//            txtYouhuijuan.setText("不使用");
//        }
//        selectWays = item.data.get(0).payment_class_name;
//        payment_id = item.data.get(0).payment_id + "";
//    }
//
//    private boolean isGotoPay = false;
//
//    @Override
//    public void getPayOrderSuccess(PayOrderModel data) {
//        String url = data.data.alipay_money_links;
////        "go_alipay": 1   // 是否直接调整至支付宝：0 - 否，1 - 是
//        isGotoPay = true;
//        if (TextUtils.isEmpty(data.data.go_alipay)) {
//            data.data.go_alipay = "0";
//        }
//        if (data.data.go_alipay.equals("1")) {
//            if (!checkAliPayInstalled(this)) {
//                mWebView.loadUrl(data.data.alipay_money_links);
//                return;
//            }
//            Intent intent = new Intent();
//            intent.setAction("android.intent.action.VIEW");
//            Uri content_url = Uri.parse(Const.ALIPAY_START + data.data.alipay_money_links + Const.ALIPAY_END);
//            intent.setData(content_url);
//            startActivity(intent);
//        } else if (data.data.go_alipay.equals("0")) {
//            mWebView.loadUrl(url);
//        }
//
//
//    }
//
//    private boolean checkAliPayInstalled(Context context) {
//
//        Uri uri = Uri.parse("alipays://platformapi/startApp");
//        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
//        ComponentName componentName = intent.resolveActivity(context.getPackageManager());
//        return componentName != null;
//    }
//
//
//    @Override
//    protected void onResume() {
//        super.onResume();
//        if (isGotoPay) {
//            isGotoPay = false;
//            api.getRepayDialog();
//        }
//    }
//
//    @Override
//    public void getRepayDialogSuccess(RepayStatusDialogModel item) {
////        "is_alerts": 1,  //是否需要弹窗：0 - 否，1 - 是
//        //订单状态：0 - 待确认、 1 - 失败、 2 - 成功、4 - 无订单
//        explainList = item.data.explain;
//
//        if (item.data.order_status == 2) {
//            Map<String, String> map = new HashMap<>();
//            map.put("type", Const.SendType.UPDATE_REPAY);
//            EventBus.getDefault().post(new OnHomeEventMsg(map));
//            ToastUtil.makeText(this, "支付成功").show();
//            finish();
//        } else if (item.data.order_status == 1) {
//            ToastUtil.makeText(this, "支付失败").show();
//        } else if (item.data.order_status == 4) {
//            ToastUtil.makeText(this, "支付失败").show();
//        } else if (item.data.order_status == 0) {
//            notice_sn = item.data.notice_sn;
//            if (item.data.is_alerts == 0) {
//            } else if (item.data.is_alerts == 1) {
//                Dialog.showConfirmDialog(this, new Dialog.DialogDefaultClickListener() {
//                    //                确认支付成功
//                    @Override
//                    public void confirm() {
//                        api.confirmDialog(item.data.notice_id, api.SUCCESS);
//                    }
//
//                    //                点击支付失败
//                    @Override
//                    public void cancel() {
//                        Dialog.showDefaultDialog(PaySelectNewV2Activity.this, "提示", "确定支付失败吗？", "确定", "返回", false, new Dialog.DialogDefaultClickListener() {
//                            @Override
//                            public void confirm() {
////                            点击返回，显示上一个Dialog;
//                                Dialog.showConfirmDialog(PaySelectNewV2Activity.this, new Dialog.DialogDefaultClickListener() {
//                                    @Override
//                                    public void confirm() {
//                                        api.confirmDialog(item.data.notice_id, api.SUCCESS);
//                                    }
//
//                                    @Override
//                                    public void cancel() {
//                                        Dialog.showDefaultDialog(PaySelectNewV2Activity.this, "提示", "确定支付失败吗？", "确定", "返回", false, new Dialog.DialogDefaultClickListener() {
//                                            @Override
//                                            public void confirm() {
//
//                                            }
//
//                                            @Override
//                                            public void cancel() {
//                                                api.confirmDialog(item.data.notice_id, api.FAILED);
//                                            }
//                                        });
//                                    }
//                                });
//                            }
//
//                            @Override
//                            public void cancel() {
//                                //                            点击确认，支付失败;
//                                api.confirmDialog(item.data.notice_id, api.FAILED);
//                            }
//                        });
//                    }
//                });
//            }
//        }
//    }
//
//
//    @Override
//    public void confirmDialogSuccess(ConfirmDilaogModel item, String confirm) {
//        if (confirm.equals(api.FAILED)) {
////            finish();
//        } else if (confirm.equals(api.SUCCESS)) {
//            gotoShenhe(explainList);
//        }
//    }
//
//    @Override
//    public void getRepayDataSuccess(RepayModel item) {
//
//    }
//
//    private void gotoShenhe(ArrayList<String> explain) {
//        Intent intent = new Intent(this, ShenHeActivity.class);
//        intent.putExtra("deal_id", dealId);
//        intent.putExtra("money", mMoney + "");
//        intent.putExtra("overdue", overdue);
//        intent.putExtra("total_money", totalMoney);
//        intent.putExtra("balance", balance);
//        intent.putExtra("order", notice_sn);
//        intent.putStringArrayListExtra("explain", explain);
//        startActivity(intent);
//        overridePendingTransition(R.anim.right_enter, R.anim.left_out);
//        finish();
//    }
//
//
//    private String bonus_id;
//    private String bonus_name;
//
//
//    @Subscribe(threadMode = ThreadMode.MAIN)
//    public void onAlipayUser(AlipayUserEvent msg) {
//        txtPayType.setText(msg.user);
//    }
//
//    @Subscribe(threadMode = ThreadMode.MAIN)
//    public void onFinishThisAct(ClosePayActEvent msg) {
//        finish();
//    }
//
//    @Subscribe(threadMode = ThreadMode.MAIN)
//    public void onSelectYouhui(YouhuiSelectEvent msg) {
//        bonus_id = msg.id;
//        bonus_name = msg.name;
//        bonus_money = Float.valueOf(msg.money);
//
//        if (TextUtils.isEmpty(bonus_id)) {
//            txtYouhuijuan.setText("不使用");
//        } else {
//            txtYouhuijuan.setText(msg.name);
//        }
//
//        float dikou;
//        if (TextUtils.isEmpty(UI.toString(txtDikou))) {
//            dikou = 0;
//        } else {
//            dikou = UI.toFloat(txtDikou);
//        }
//        if (cbDikou.isChecked()) {
//            payMoneyString = (totalMoney - dikou - bonus_money) + "";
//        } else {
//            payMoneyString = (totalMoney - bonus_money) + "";
//        }
//
//        txtPayMoney.setText(format.format(Float.valueOf(payMoneyString)));
//    }
//
//    /**
//     * 是否显示加载框
//     *
//     * @param b
//     */
//    private void showLoading(boolean b) {
//        if (loading != null) {
//            if (b) {
//                payBtn.setEnabled(false);
//                loading.setVisibility(View.VISIBLE);
//            } else {
//                payBtn.setEnabled(true);
//                loading.setVisibility(View.GONE);
//            }
//        }
//    }
//
//
//    @Override
//    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//
//    }
//
//    @Override
//    public void onTextChanged(CharSequence s, int start, int before, int count) {
//
//    }
//
//    @Override
//    public void afterTextChanged(Editable s) {
//        if (UI.toString(txtDikou).equals("")) {
//            payMoneyString = (totalMoney - bonus_money) + "";
//            txtPayMoney.setText(format.format(Float.valueOf(payMoneyString)));
//            return;
//        }
//        if (UI.toFloat(txtDikou) > totalMoney) {
//            payMoneyString = (int) (totalMoney - bonus_money) + "";
//            txtDikou.setText(Integer.valueOf(payMoneyString) + "");
//        } else if (UI.toFloat(txtDikou) > dikou_num) {
//            payMoneyString = dikou_num + "";
//            txtDikou.setText(payMoneyString);
//        }
//        payMoneyString = (totalMoney - UI.toFloat(txtDikou) - bonus_money) + "";
//        txtPayMoney.setText(format.format(Float.valueOf(payMoneyString)));
//    }
//
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        payMoneyString = null;
//        txtDikou.addTextChangedListener(null);
//        if (mWebView != null) {
//            mWebView.onPause();
//            mWebView.destroy();
//            mWebView = null;
//        }
//        api.detachView();
//        api = null;
//        unbinder.unbind();
//        ScacheUtil.clearTextLineCache();
//        EventBus.getDefault().unregister(this);
//
//
//    }
//
//
//    @OnCheckedChanged(R.id.cb_dikou)
//    void onCheckedChanged(CompoundButton button, boolean ischeck) {
//        if (!cbDikou.isChecked()) {
//            txtDikou.setEnabled(false);
//            payMoneyString = (totalMoney - bonus_money) + "";
//            txtPayMoney.setText(format.format(Float.valueOf(payMoneyString)));
//            txtDikou.setTextColor(Color.parseColor("#a1a1a1"));
//        } else {
//            txtDikou.setEnabled(true);
//            txtDikou.setTextColor(Color.parseColor("#000000"));
//            if (UI.toString(txtDikou).equals("")) {
//                return;
//            }
//            payMoneyString = (totalMoney - UI.toFloat(txtDikou) - bonus_money) + "";
//            txtPayMoney.setText(format.format(Float.valueOf(payMoneyString)));
//        }
//    }
//
//
////    @Override
////    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
////        super.onActivityResult(requestCode, resultCode, data);
////        if (requestCode == 200 && resultCode == 1) {
////
////            String account = data.getStringExtra("account");
////            if (TextUtils.isEmpty(account)) {
////                return;
////            }
////            txtPayType.setText(account);
////        }
////    }
//
//    @OnClick({R.id.title_right_text, R.id.submit, R.id.layout_three, R.id.txt_youhuijuan_left, R.id.left_img})
//    public void onViewClicked(View view) {
//        if (UI.isFastClick()) {
//            return;
//        }
//        switch (view.getId()) {
//            case R.id.title_right_text:
////                if (TextUtils.isEmpty(payment_id)) {
////                    api.getPayWay();
////                    return;
////                }
////                Intent intentRecharge = new Intent(this, RechargeMoneyActivity.class);
////                intentRecharge.putExtra("alipay", UI.toString(txtPayType));
////                intentRecharge.putExtra("payment_id", payment_id);
////                intentRecharge.putExtra("selectWays", selectWays);
////                startActivity(intentRecharge);
////                overridePendingTransition(R.anim.right_enter, R.anim.left_out);
//                break;
//            case R.id.submit:
//                if (TextUtils.isEmpty(payment_id)) {
//                    api.getPayWay();
//                    return;
//                }
//                String needPay = UI.toString(txtPayMoney);
//                String dikou;
//                if (TextUtils.isEmpty(UI.toString(txtDikou)) || !cbDikou.isChecked()) {
//                    dikou = "0";
//                } else {
//                    dikou = UI.toString(txtDikou);
//                }
//
////                if (Integer.valueOf(dikou) % 5 != 0) {
////                    ToastUtil.makeText(this, "余额抵扣只能是5的倍数").show();
////                    return;
////                }
//
//                if (TextUtils.isEmpty(UI.toString(txtPayType))) {
//                    ToastUtil.makeText(this, "请选择支付宝账号").show();
//                    return;
//                }
//
//
//                api.getPayOrder(ACTION, payment_id, selectWays, needPay, dikou, bonus_id, UI.toString(txtPayType));
//                break;
//            case R.id.layout_three:
//                if (payWayList == null) {
//                    api.getPayWay();
//                    return;
//                }
//                Intent intent = new Intent(this, AlipayAddActivity.class);
//                intent.putExtra("alipay", UI.toString(txtPayType));
//                startActivity(intent);
//                overridePendingTransition(R.anim.right_enter, R.anim.left_out);
//                break;
//            case R.id.txt_youhuijuan_left:
//                if (totalBonus == 0) {
//                    return;
//                }
//                Util.startActivity(this, YouhuiSelectActivity.class);
////                ToastUtil.makeText(this, "敬请期待").show();
//                break;
//            case R.id.left_img:
//                finish();
//                break;
//        }
//
//    }
//
//
//}
